Release/test#30
Conversation
…test suite - Introduced new `mlh-bookmark.sh` plugin to enable fast navigation using named and numbered directory bookmarks. - Updated `setup.sh` and `mlh.sh` to integrate the bookmark plugin. - Added detailed instructions and usage examples in `CLAUDE.md`. - Added `.gitignore` entries for MyLinuxHelper runtime files. - Included comprehensive test script `test-mlh-bookmark.sh` for the new feature.
…itize command parsing.
…ng and improve isolation via subshell execution
- Introduced per-suite statistics for better granular insights into test outcomes. - Enhanced `parse_relative_time` and `timestamp_to_date` function tests with pass/fail cases. - Improved `parse_history_with_timestamps` and `filter_by_date` test coverage using controlled scenarios. - Refactored test output for consistency with `print_test_result` formatting.
- Introduced category handling for named bookmarks allowing hierarchical organization. - Added `bookmark mv <name> to <category>` to move bookmarks between categories. - Enhanced `bookmark list` to support category filtering and group display. - Updated help and example sections to reflect category-related commands. - Extended test suite with comprehensive category management scenarios.
…nded tests - Added `bookmark` wrapper function in `setup.sh` for seamless `cd` integration. - Updated help output in `mlh-bookmark.sh` to use `echo -e` for ANSI code formatting. - Improved readability and structure of examples, usage, and feature sections. - Extended test suite with integration tests for echo formatting and safe path handling. - Ensured `cd` commands are eval-safe and properly quoted for paths with spaces.
…ionality integration in `.bashrc`
…d` documentation - Updated README.md with `bookmark` usage examples, structured feature highlights, and advanced operations. - Expanded CLAUDE.md with architecture details, wrapper function behavior, and update process for seamless shell integration. - Adjusted `mlh-version.sh` to reload shell automatically post-update for immediate functionality access. - Improved `setup.sh` to include `bookmark` wrapper function for enhanced usability. - Extended `mlh-bookmark.sh` description with JSON storage and wrapper-related updates.
- Added `bookmark rm <name|number>` for removing specific bookmarks. - Introduced `bookmark clear` to remove all unnamed bookmarks with confirmation. - Updated help text and examples in `mlh-bookmark.sh` to include new commands. - Expanded test suite to cover bookmark removal, clearing scenarios, and edge cases.
…`mlh-bookmark.sh` - Added `bookmark list -i` for interactive menu navigation with real-time editing, deletion, and search. - Introduced `bookmark edit` to modify bookmark details (name/path/category). - Added `bookmark find <pattern>` for smart bookmark search by name, path, or category. - Enhanced `bookmark rm` to re-number unnamed bookmarks upon deletion. - Updated hierarchical bookmark listing to visualize nested categories clearly. - Expanded documentation in `README.md` and `CLAUDE.md` with feature highlights and examples. - Extended test suite with 39 new cases covering interactive and advanced features.
- Refactored key input logic for better handling in interactive mode across different environments. - Enhanced arrow key detection with explicit mappings for UP, DOWN, LEFT, RIGHT actions. - Improved fallback behavior for non-tty inputs and clarified escape sequence processing.
…handling - Updated `setup.sh` wrapper to use a fixed temp file (`/tmp/bookmark-cd-<USER>`) for `cd` commands in interactive mode. - Enhanced `mlh-bookmark.sh` to write `cd` paths to the fixed temp file on bookmark selection. - Added tests to verify ranger-style temp file usage in wrapper and plugin interactive mode.
feature/22-bookmark
…nteractive mode - Updated `setup.sh` to create unique temp files per invocation using `mktemp` for improved reliability in `bookmark` interactive mode. - Enhanced `mlh-bookmark.sh` to support the unique temp file mechanism via `MLH_BOOKMARK_CD_FILE` environment variable. - Added fallback mechanisms to handle `mktemp` failures and ensure backward compatibility with fixed temp file paths. - Improved tests to validate the new temp file handling for wrapper and plugin, addressing potential race conditions.
- Added automation for testing interactive `cd` with `expect` where available. - Enhanced fallback mechanisms to test wrapper functionality when `expect` is unavailable. - Refactored `setup.sh` sourcing and environment handling for test reliability. - Updated test logic to provide detailed PASS/FAIL results for interactive mode behaviors. - Improved fail-safe handling and messaging for missing dependencies or preconditions.
Update file permissions for multiple scripts and test files to execut…
- Replaced `expect`-based interactive mode testing with `tmux` for improved portability. - Simplified tests to reduce redundant logic and dependency handling. - Marked redundant test (Test 76) as deprecated, directing users to automated testing in Test 77. - Enhanced PASS/FAIL reporting with clearer explanations for interactive mode behaviors and results.
…nce files - Updated the wrapper to remove stale temp files from interrupted sessions. - Simplified temp file sourcing logic to handle sequence files (`.1`) created by plugin. - Removed unnecessary polling loops and replaced with a brief sleep for plugin file writes. - Enhanced cleanup process to delete all temp files after each invocation.
- Resolved jq query error causing failures with categorized named bookmarks in interactive mode. - Implemented `try-catch` mechanism in jq query to handle invalid `tonumber` conversions gracefully. - Added Tests 78–80 to validate the fix, ensuring categorized named bookmarks work in both non-interactive and interactive modes. - Updated test cases to improve coverage and confirm reliability under test environment constraints.
- Resolved jq query error causing failures with categorized named bookmarks in interactive mode. - Implemented `try-catch` mechanism in jq query to handle invalid `tonumber` conversions gracefully. - Added Tests 78–80 to validate the fix, ensuring categorized named bookmarks work in both non-interactive and interactive modes. - Updated test cases to improve coverage and confirm reliability under test environment constraints.
Allow users to create custom shortcuts for the bookmark command. Includes setup script modifications, plugin updates, new tests, and documentation. Co-authored-by: melihcelenk <melihcelenk@gmail.com>
- Introduced alias configuration via `bookmark-alias.conf`, enabling shorthand command use (e.g., `bm` for `bookmark`). - Updated `setup.sh` to validate, configure, and apply alias settings dynamically. - Enhanced help text and examples to reflect alias usage, adapting dynamically based on user configuration. - Added alias integration tests and comprehensive validation for valid and invalid alias names. - Updated documentation with a detailed guide for alias configuration (`BOOKMARK_ALIAS_GUIDE.md`).
- Added `test-bookmark-alias-integration.sh` to validate alias functionality and integration with `setup.sh`. - Comprehensive tests include alias wrappers, argument handling, symlink creation, and conflict detection. - Ensured robust test environment setup, teardown, and result reporting for alias-related scenarios.
Implement bookmark alias functionality, allowing custom shortcuts. Refactor configuration to use a single `mlh.conf` file. Enhance interactive list to be the default. Add comprehensive tests and documentation. Co-authored-by: melihcelenk <melihcelenk@gmail.com>
Co-authored-by: melihcelenk <melihcelenk@gmail.com>
Co-authored-by: melihcelenk <melihcelenk@gmail.com>
Co-authored-by: melihcelenk <melihcelenk@gmail.com>
Co-authored-by: melihcelenk <melihcelenk@gmail.com>
Co-authored-by: melihcelenk <melihcelenk@gmail.com>
Co-authored-by: melihcelenk <melihcelenk@gmail.com>
Co-authored-by: melihcelenk <melihcelenk@gmail.com>
…e-and-transfer-context-4c2f # Conflicts: # CLAUDE.md # docs/BOOKMARK_ALIAS_GUIDE.md # plugins/mlh-bookmark.sh # setup.sh
- Updated `setup.sh` to make interactive mode the default behavior for the `bookmark list` command (no explicit `-i` flag required). - Adjusted wrapper function logic to handle non-interactive flags (`-n` and numerical limits) appropriately. - Enhanced related test cases to reflect changes, ensuring effective coverage for interactive and non-interactive scenarios. - Updated `tmux` test scripts to validate default interactive mode functionality.
…as validation, and interactive `bm list` functionality - Introduced multiple `shellcheck` rule suppressions to improve script readability and clarify intent during analysis. - Refactored bookmark alias wrapper logic to safely handle symlink conflicts and prioritize function calls over existing commands. - Enhanced `mlh.conf` usage by deprecating old `bookmark-alias.conf` format and ensuring backward compatibility. - Improved `setup.sh` to robustly process environment paths, user aliases, and interactive invocation scenarios, minimizing race conditions. - Updated test scripts with additional coverage for `bm list` functionality in interactive mode, addressing edge cases and user-reported bugs.
…as validation, and interactive `bm list` functionality - Introduced multiple `shellcheck` rule suppressions to improve script readability and clarify intent during analysis. - Refactored bookmark alias wrapper logic to safely handle symlink conflicts and prioritize function calls over existing commands. - Enhanced `mlh.conf` usage by deprecating old `bookmark-alias.conf` format and ensuring backward compatibility. - Improved `setup.sh` to robustly process environment paths, user aliases, and interactive invocation scenarios, minimizing race conditions. - Updated test scripts with additional coverage for `bm list` functionality in interactive mode, addressing edge cases and user-reported bugs.
…est scripts - Cleaned up superfluous blank lines to improve script readability. - Standardized spacing and formatting across test scripts for consistency. - Enhanced indentation and alignment, particularly around file redirection and conditional constructs.
- Updated `RELEASE_NOTES_v1.5.0.md` with new features, enhancements, and test improvements. - Added details on ShellCheck validation and test suite expansion (293 total tests). - Adjusted version to `1.5.0` and release date to `2025-11-09` in `mlh-version.sh`. - Clarified migration guide and known issues for ShellCheck and WSL compatibility.
…e-and-transfer-context-4c2f Resolve local run issue and transfer context
Feature/22 bookmark
…havior - Documented alias setup in `mlh.conf` and `BOOKMARK_ALIAS_GUIDE.md` for flexible `bm` configurations. - Defaulted `bookmark list` to interactive mode, with `-n` flag for non-interactive use. - Expanded test coverage to 293 total tests, including alias integration and interactive scenarios. - Updated `README.md` with configuration steps, new features, and usage examples.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| # Not a jump command, just show the output | ||
| echo "$output" | ||
| return $? |
There was a problem hiding this comment.
Preserve bookmark plugin exit status in shell wrapper
The bookmark wrapper added to ~/.bashrc runs command bookmark "$@" earlier in the function but never saves its exit code. When the command does not emit a cd line (e.g. bookmark rm missing or a failed jump), the wrapper falls into this branch, echoes the captured output and then returns the status of echo rather than the plugin. As a result bookmark now reports success even when the underlying command failed, breaking error handling for scripts and interactive users. Capture the exit status immediately after invoking the plugin and return that value instead of $? from echo.
Useful? React with 👍 / 👎.
No description provided.